1. Field of the Invention
This invention relates to computer systems and, more particularly, to the management of updates within storage environments employing distributed virtualization techniques.
2. Description of the Related Art
Many business organizations and governmental entities rely upon applications that access large amounts of data, often exceeding a terabyte or more of data, for mission-critical applications. Often such data is stored on many different storage devices, which may be heterogeneous in nature, including many different types of devices from many different manufacturers.
Configuring individual applications that consume data, or application server systems that host such applications, to recognize and directly interact with each different storage device that may possibly be encountered in a heterogeneous storage environment would be increasingly difficult as the environment scaled in size and complexity. Therefore, in some storage environments, specialized storage management software and hardware may be used to provide a more uniform storage model to storage consumers. Such software and hardware may also be configured to add storage features not present in individual storage devices to the storage model. For example, features to increase fault tolerance, such as data mirroring, snapshot/fixed image creation, or data parity, as well as features to increase data access performance, such as disk striping, may be implemented in the storage model via hardware or software.
Some of the added storage features, such as data mirroring, may require more than one physical write operation to be performed for a given logical update. For example, if a data file is stored on a mirrored storage device including two mirrored physical disks, an update to the data file by an application at a client computer system may require a physical write operation at each of the mirrored physical disks. In a distributed storage environment, each of the two mirrored disks may be hosted at a different storage server, to which the client computer system may be connected via a network. For each logical update by the application, one request for a physical write may be sent from the client computer system over the network to each storage server, and one acknowledgment may be received at the client computer system from each storage server. In an update-intensive storage environment with a large number of client applications, outbound network paths between clients and storage servers may become heavily utilized, leading to overall reduced performance for update operations. In such environments, it may be desirable to reduce the number of write requests required to be sent from client computer systems for a given logical update.